﻿


/////////////////////////////////////////////////////////////////////////////////
///              ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO                   ///
///                        PROYECTO INTEGRADOR IV                            /// 
///                         PROYECTO SICOPS 2011                              /// 
/// ------------------------------------------------------------------------- ///  
///              **********GRUPO DE DESARROLLADORES**********                 ///
///                 ************PEGASO COMPANY**************                    /// 
///---------------------------------------------------------------------------///
///                                                         RIOBAMBA-ECUADOR  ///
///---------------------------------------------------------------------------///
///                          FORMULARIO PARA EMPRESA                    ///
///---------------------------------------------------------------------------///
///Permite ingresar empresas a nuestra base de datos                        ///
///                                           Responsable:  Sagñay Rosa   ///
/////////////////////////////////////////////////////////////////////////////////

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LogisticaDeAcceso;
//Formulario para el registro de nuevos centros de costos
namespace Aplicacion.Formularios
{
    public partial class frmEmpresa : Form
    {
        private bool varBandera=true;//Variable de inicializacion de los ingresos exteriores
        private string varConexion;//Variable con la direccion de coneccion, el nombre del base de datos y la cuenta de acceso

        public frmEmpresa()
        {
            InitializeComponent();
        }

        public frmEmpresa(string Con)
        {
            //Metodo de inicio de variables
            InitializeComponent();
            varConexion = Con;
            /////////////////////////////////
        }

        private void btnNuevoCC_Click(object sender, EventArgs e)
        {
            //Llamado al un nuevo ingreso
            btnNuevoCC.Enabled = false;
            metLimpiarDatos();
            metGenerarClave();
            grpIngresoCC.Enabled = true;
            ////////////////////////////
            
        }

        private void metIngreso()
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metIngresarCentroCostos(varConexion,txtCodigoCentro.Text,txtNombreCC.Text,txtResponsableCC.Text,txtUbicacionCC.Text);
            //Llamado al procedimiento de ingreso de centro de costos
        }

     

        private void frmCentroDeCostos_Load(object sender, EventArgs e)
        {
            metGenerarClave();//Metodo de asigncion de claves para los nuevos ingresos

        }

        private void metGenerarClave()//metodo que se utiliza para la generacion de las claves primarias
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            Aplicacion.clsControles.clsControles auxGen = new Aplicacion.clsControles.clsControles();
            int Numero = auxCom.metContarFilasCentroCostos(varConexion,this.coleccionDeDatos1);
            txtCodigoCentro.Text = auxGen.GeneracionClaves("J", Numero);//Llamado al metodo que genera una clave
            //Metodo que se encuentra en las clases de acceso         
        }

        private void textNombreCC_KeyDown(object sender, KeyEventArgs e)
        {
            //Activacion de salto de linea cuando se precion la tecla enter
            if (e.KeyCode == Keys.Enter)
                txtResponsableCC.Focus();
            ////////////////////////////////////////////////////////////////
        }

        private void textResponsableCC_KeyDown(object sender, KeyEventArgs e)
        {
            //Activacion de salto de linea cuando se precion la tecla enter
            if (e.KeyCode == Keys.Enter)
                txtUbicacionCC.Focus();
            ////////////////////////////////////////////////////////////////
        }

        private void textUbicacionCC_KeyDown(object sender, KeyEventArgs e)
        {
            //Activacion de salto de linea cuando se precion la tecla enter
            if (e.KeyCode == Keys.Enter)
                    btnGuardarCC.PerformClick();
            ////////////////////////////////////////////////////////////////
        }

        private void textNombreCC_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Llamado al metodo que permite el ingreso de solo letras
            Aplicacion.clsControles.clsControles auxFrm = new Aplicacion.clsControles.clsControles();
            varBandera = auxFrm.metSoloLetras(e,varBandera);////////Solo letras
            varBandera = auxFrm.metPrecionarEspacio(e,varBandera);//Solo un espacio
               metAceptar();//Control de espacios vacios

        }

        private void textUbicacionCC_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Llamado al metodo que permite el ingreso de no mas de un espacio
            Aplicacion.clsControles.clsControles auxFrm = new Aplicacion.clsControles.clsControles();
            varBandera = auxFrm.metControlarEspacios(e, varBandera);///////////
            varBandera = auxFrm.metPrecionarEspacio(e, varBandera);//Solo un espacio
            metAceptar();//Control de espacios vacios
        }

        private void  metAceptar()
        {
            //Validacion de los espacios vacios
            if (metEstaVacio(txtNombreCC) == false && metEstaVacio(txtResponsableCC) == false && metEstaVacio(txtUbicacionCC) == false)
                btnGuardarCC.Enabled = true;//Permitir registrar
            else
                btnGuardarCC.Enabled = false;//No permite guardar
        }

        private bool metEstaVacio(TextBox tex)
        { 
            //Metodo de control de un numnero especifico en los espacios
            bool auxVar=true;
            if (tex.Text.Length >= 3)
                auxVar = false;
            else
                auxVar = true;
            return auxVar;
            ////////////////////////////////////////////////////////////////

        }

        private void btnGuardarCC_Click(object sender, EventArgs e)
        {      
            //Ingreso del nuevo registro
            if (MessageBox.Show("¿Desea continuar con el registro del centro de costos actual?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                try
                {
                    metIngreso();//////////////////Exitoso ingreso
                    btnGuardarCC.Enabled = false;//
                    btnNuevoCC.Enabled = true;/////
                    grpIngresoCC.Enabled = false;
                }
                catch (Exception)
                {
                    btnGuardarCC.Enabled = true;//Falla en ingreso
                    btnNuevoCC.Enabled = false;
                }
            }
        }

        private void metLimpiarDatos()
        {
            //Limpia los datos para un nuevo ingreso
            txtNombreCC.Clear();////////////////////
            txtResponsableCC.Clear();///////////////
            txtUbicacionCC.Text = "Ubicacion interna";
            txtNombreCC.Focus();////////////////////
        }

        private void toolModificarCentro_Click(object sender, EventArgs e)
        {
            //Llamado al metodo de modificacion de centro
            Aplicacion.Formularios.frmModificarEmpresa auxFrm = new frmModificarEmpresa(varConexion );
            auxFrm.ShowDialog();
            ////////////////////////////////////////////////////////////////
        }
    
    }
}
